This invention relates to nonvolatile memory systems, such as computer disk arrays, having data access contention management.
Many software programs access data stored on arrays of disks, which are typically accessed via a network. For example, with recent the growth of the Internet and Web Hosts, there has been a corresponding growth in storage server applications in which software programs access data on disk arrays. Conventionally, storage space on each disk of a disk array is divided into blocks, data is assigned to sets of blocks and each set of blocks is spread across a number of the disks.
In many cases, a network administrator has information about the nature of the data or how the software programs access the data and can use this information to reduce contention among accesses to the disks. As a simple example, consider that the administrator knows two software programs will commonly be running concurrently. Therefore, if the two programs access data that is on the same set of disks, the programs will contend for the disks and slow down program execution. Furthermore, it is common that the programs will access the data as data streams. During a data stream connection to a set of blocks, the disks for those blocks are less available for other data transfers. Thus, data-stream-type transfers tend to further aggravate the disk contention.
If the administrator knows that the two programs frequently access two sets of data which are largely different sets, the administrator can use this information to assign the data to two different sets of disks in the disk array so that data accesses to the two sets of data can be more nearly independent of one another. As a result, the two programs can run faster. Moreover, this also tends to reduce the effects of data loss.
An LU is a container for data. The data is stored on groups of blocks on one or more disks. LU""s are created and then data on the groups of blocks are assigned to the LU""s. The process of assigning data blocks to LU""s may be a tedious, time consuming and error prone manual process or it may be a process having automatic aspects, as is described in the following publications, which are hereby incorporated herein by reference: Voigt, Ahivers, and Dolphin, U.S. Pat. No. 5,960,451, xe2x80x9cSystem and Method for Reporting Available Capacity in a Data Storage System with Variable Consumption Characteristics,xe2x80x9d Sep. 28, 1999; Jacobson, Fordemwalt, Voigt, Nelson, Vazire, and Baird, U.S. Pat. No. 5,394,244, xe2x80x9cMemory Systems with Data Storage Redundancy Management,xe2x80x9d Feb. 21, 1995; xe2x80x9cHP Disk Array with AutoRAID Models 12 and 12H; HP 9000 Enterprise Servers and Workstationsxe2x80x9d; J. Wilkes, R. Golding, C. Staelin and T. Sullivan, xe2x80x9cThe HP AutoRAID hierarchical storage system,xe2x80x9d Hewlett-Packard Laboratories, Palo Alto, Calif., SIGOPS ""95 December 1995 CO, USA; xe2x80x9cACM Transactions on Computer Systems,xe2x80x9d vol. 14, No. 1, ACM 1996, pp. 1-27, Wilkes et al., xe2x80x9cThe HP AutoRAID Hierarchical Storage Systemxe2x80x9d (0734-2071/96). The process having automatic aspects is less time consuming and error prone than the manual process but tends either to not take into account certain data access patterns or to require substantial manual intervention to do so. Therefore a need exists to marry the best aspects of manual and automatic assignment of storage resources.
The foregoing need is addressed in the present invention, according to which contention avoidance information is imparted to an automated process of assigning storage resources to Logical Units (xe2x80x9cLU""sxe2x80x9d). It is an objective for the more informed, automated process to yield reduced contention. In an aspect of the invention, LU""s are manually defined and assigned to logical groups. That is, some of the LU""s are grouped together as a first logical group and others of the LU""s are grouped together as a second logical group. There may also be other LU""s in a third logical group, and fourth logical group, and so on. Then a process having automatic aspects assigns physical storage resources to the LU""s responsive to the LU logical groupings.
The physical storage resources may include any nonvolatile, randomly accessible, rewritable mass storage device which has the ability of detecting its own storage failures. It includes both rotating magnetic and optical disks and solid-state disks, or nonvolatile electronic storage elements (such as PROMs, EPROMs, and EEPROMs).
As used herein, the term xe2x80x9cautomaticxe2x80x9d refers to a method, apparatus or computer program product which proceeds or is operable to proceed or enables proceeding, without human intervention to some extent and does so according to predetermined constraints or algorithms.
In one aspect, the assignment of physical storage resources is responsive to the logical groups in a manner such that the LU""s in one logical group cannot contend for physical storage resources with the LU""s in another group. That is, physical storage resources are assigned to the LU""s in the first logical group such that the physical storage resources are independent of the storage resources assigned to the LU""s in the second logical group. Likewise, if there is a third logical group, the physical storage resources are assigned to LU""s in that logical group and those physical storage resources are independent of the storage resources assigned to the LU""s in the first and second logical groups, and so on for all the logical groups. While an administrator must assign LU""s to logical groups, it is advantageous that the administrator does not deal with the more laborious assignment of physical storage resources, but still achieves a reduction in contention for the physical storage resources.
In one aspect, the process assigns physical storage resources to the LU""s in a manner such that the LU""s within a logical group are capable of contending for the physical storage resources with one another. That is, for example, the physical storage resources automatically assigned to a first LU in the first logical group are not necessarily independent of the physical storage resources automatically assigned to a second LU in the first logical group.
In another feature, any LU""s not manually assigned to logical groups are deemed a default logical group, and when the process assigns the physical storage resources to the LU""s the process does this in a manner such that the LU""s in the default logical group cannot contend for physical storage resources with the LU""s in the other logical groups.
As described above, LU""s are manually assigned to logical groups with the understanding that the logical groups will be automatically assigned to physical storage resources in such a way that the logical groups will not contend with one another for physical storage resources. In an alternative, in lieu of LU""s being manually assigned to logical groups, certain contention avoidance relations among the LU""s are manually defined and then an automated process assigns the LU""s to logical groups. According to one feature of this alternative, individual pairs of LU""s are manually assigned a contention avoidance value with respect to one another. In one alternative, the value is binary and designates that the two LU""s of a pair should either avoid or else permit contention. Then, an automatic process assigns the LU""s to logical groups. The automatic process assigns an LU to a logical group responsive to the LU""s contention avoidance value with respect to other LU""s already assigned to the logical group.
In one aspect, the automatic assigning of LU""s to logical groups is responsive to the respective LU contention avoidance values in a manner such that if a first LU has an xe2x80x9cavoid contentionxe2x80x9d value with respect to a second LU, the first and second LU""s are assigned to different logical groups. Furthermore, the logical group for the first LU and the logical group for the second LU are accordingly assigned physical storage resources such that the two logical groups do not contend for physical storage resources with one another.
In another aspect of the alternative, the automatic assigning of LU""s to logical groups proceeds in a serial fashion, according to which, a first one of the LU""s is assigned to a logical group, then a next LU is assigned, then a next, and so on. Thus it is inherent in this process of assigning LU""s to logical groups that the size of a logical group grows as more LU""s are assigned to it during the process. Furthermore, each LU is assigned to the logical group that is the largest group, at the time of the assignment, among those logical groups to which the LU may correctly be assigned. That is, the LU may be correctly assigned only to a logical group having solely LU""s that are compatible with the contention avoidance value for the LU that is being assigned at the time.
In a further aspect, the process for automatically assigning physical storage resources to the LU""s includes automatically grouping the physical storage resources, i.e., assigning the physical storage resources to physical groups and mapping the physical groups to the logical groups. It also includes mapping blocks within such a physical group to the LU""s within the logical group or groups mapped to the physical group.
Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings.